property TRect a pristup k jednotlivym polozkam
Otázka od: petr palicka
6. 11. 2003 13:33
Ahoj,
mam do TFormu do sekce PROTECTED doplneou promennou
a do sekce PUBLIC proerty asi nasledovne:
TfPriklad=class(TForm)
...
...
...
protected
FViewRect: TRect;
public
property ViewRect: TRect read FViewRect write FViewRect;
end;
No a potom, kdyz v kodu zousim priradit neco do
ViewRect.Left, tak to nejde. Netusite nekdo proc?
Pise to "Left side cannot be assigned to". Pristup
FViewRect:=neco funguje :/
dekuji
Peca
----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)
Odpovedá: delphikonf@proxima-soft.sk
6. 11. 2003 14:35
Daj si namiesto protected public, a pojde ti to.
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of petr palicka
Sent: Thursday, November 06, 2003 1:19 PM
To: delphi-l@clexpert.cz
Subject: property TRect a pristup k jednotlivym polozkam
Ahoj,
mam do TFormu do sekce PROTECTED doplneou promennou
a do sekce PUBLIC proerty asi nasledovne:
TfPriklad=class(TForm)
....
....
....
protected
FViewRect: TRect;
public
property ViewRect: TRect read FViewRect write FViewRect;
end;
No a potom, kdyz v kodu zousim priradit neco do ViewRect.Left, tak to
nejde. Netusite nekdo proc? Pise to "Left side cannot be assigned to".
Pristup FViewRect:=neco funguje :/
dekuji
Peca
---
Prichadzajuca sprava neobsahuje virusy.
Skontrolovane antivirusovym systemom AVG (http://www.grisoft.cz).
Verzia: 6.0.530 / Virusova databaza: 325 - datum vydania: 22. 10. 2003
----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)
Odpovedá: Vit Krska
6. 11. 2003 15:26
a nebo pouzij funkci Rect. pak:
ViewRect:= Rect(x1,y1,x2,y2);
>
> Daj si namiesto protected public, a pojde ti to.
>
>
> Ahoj,
>
> mam do TFormu do sekce PROTECTED doplneou promennou
> a do sekce PUBLIC proerty asi nasledovne:
>
> TfPriklad=class(TForm)
> ....
> ....
> ....
> protected
> FViewRect: TRect;
> public
> property ViewRect: TRect read FViewRect write FViewRect;
> end;
>
> No a potom, kdyz v kodu zousim priradit neco do
> ViewRect.Left, tak to
> nejde. Netusite nekdo proc? Pise to "Left side cannot be assigned to".
> Pristup FViewRect:=neco funguje :/
>
> dekuji
>
> Peca
>
>
>
> ---
> Prichadzajuca sprava neobsahuje virusy.
> Skontrolovane antivirusovym systemom AVG (http://www.grisoft.cz).
> Verzia: 6.0.530 / Virusova databaza: 325 - datum vydania: 22. 10. 2003
>
>
>
----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)
Odpovedá: Kancelar
6. 11. 2003 15:36
Je to proto, ze do vlastnosti, ktera je typu zaznam se da zapisovat
zase jenom ta sama struktura. K jednotlivym polozkam pristup neni.
Musi se to udelat takto:
...
var tmpViewRect: TRect;
...
tmpViewRect.Left := hodnota;
ViewRect := tmpViewRectangle;
...
Druha moznost je, nadefinovat vlastnosti pro kazdou polozku zvlast:
...
protected
FViewRect: TRect;
public
property RectLeft: integer read getRectLeft write SetRectLeft;
...
end;
...
function getRectLeft: integer;
begin
Result:= FViewRect.Left;
end;
procedure setRectLeft(value: integer);
begin
FViewRect.Left:= value;
end;
...
Mejte se pekne
Slavoj Pisek
> Ahoj,
> mam do TFormu do sekce PROTECTED doplneou promennou
> a do sekce PUBLIC proerty asi nasledovne:
> TfPriklad=class(TForm)
> ...
> ...
> ...
> protected
> FViewRect: TRect;
> public
> property ViewRect: TRect read FViewRect write FViewRect;
> end;
> No a potom, kdyz v kodu zousim priradit neco do
> ViewRect.Left, tak to nejde. Netusite nekdo proc?
> Pise to "Left side cannot be assigned to". Pristup
> FViewRect:=neco funguje :/
> dekuji
> Peca
----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)
Odpovedá: petr palicka
7. 11. 2003 7:39
> Daj si namiesto protected public, a pojde ti to.
to je principielne spatny pristup. nemuzu zverejnit
interni promennou objektu. ja potrebuju mit jeji
obsluhu plne pod kontrolou. v pripade, ze promenna
je protected a pristup je pomoci verejne property,
muzu si na jeji cteni a zapis psat funkce, ktere
zajisti nejakou dalsi funkcnost, jako kontorla
rozzsaho, prekresleni vyrezu a pod.
peca
----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)
Odpovedá: petr palicka
7. 11. 2003 7:34
Vit Krska wrote:
> a nebo pouzij funkci Rect. pak:
> ViewRect:= Rect(x1,y1,x2,y2);
tak to delam ted. pres noc se mi
to rozlezelo a ono by to byla vlastne
blbost, neb bych obchazel zapouzdreni
objektu. reseni by bylo vytvorit object
TViewRect (ne record jako je TRect) a
ten by mel vlastnosti, ktere by sly
prirazovat i samostatne
peca
----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)